package toOffer;

/**
 * @author YuanAo
 * @date 2024/7/18 10:17
 * @description 图书整理125
 */

import java.util.LinkedList;

/**
 * 读者来到图书馆排队借还书，图书管理员使用两个书车来完成整理借还书的任务。书车中的书从下往上叠加存放，图书管理员每次只能拿取书车顶部的书。
 * 排队的读者会有两种操作：
 * <p>
 * push(bookID)：把借阅的书籍还到图书馆。
 * pop()：从图书馆中借出书籍。
 * 为了保持图书的顺序，图书管理员每次取出供读者借阅的书籍是 最早 归还到图书馆的书籍。你需要返回 每次读者借出书的值 。
 * <p>
 * 如果没有归还的书可以取出，返回 -1 。
 * <p>
 * 示例 1：
 * <p>
 * 输入：
 * ["BookQueue", "push", "push", "pop"]
 * [[], [1], [2], []]
 * 输出：[null,null,null,1]
 * 解释：
 * MyQueue myQueue = new MyQueue();
 * myQueue.push(1); // queue is: [1]
 * myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)
 * myQueue.pop(); // return 1, queue is [2]
 * 提示：
 */
public class LCR125 {
    public static void main(String[] args) {
        String[] strs = {"CQueue", "appendTail", "deleteHead", "deleteHead", "deleteHead"};
        int[][] ints = {{}, {3}, {}, {}, {}};

        LCR125 myQueue = new LCR125();
        for (int i = 0; i < strs.length; i++) {
            if ("appendTail".equals(strs[i])){
                myQueue.appendTail(ints[0][i]);
            }else if ("deleteHead".equals(strs[i])){
                int value = myQueue.deleteHead();
                System.out.print(value + " ");
            }
        }
    }

    static LinkedList<Integer> aList, bList;

    public LCR125() {
        aList = new LinkedList<>();
        bList = new LinkedList<>();
    }

    public void appendTail(int value) {
        aList.add(value);
    }

    public int deleteHead() {
        bList.addAll(aList);
        aList.clear();
        if (bList.isEmpty()) {
            return -1;
        }
        return bList.removeFirst();
    }

    private char fun(String s, String t){
        if (s.equals("")){
            char[] chars = t.toCharArray();
            return chars[0];
        }
        int count = 0;
        char[] chars1 = t.toCharArray();
        for (char c : chars1) {
            count += c;
        }
        char[] chars2 = s.toCharArray();
        for (char c : chars2) {
            count -= c;
        }
        return (char)count;
    }
}
